EC2 인스턴스에서 SSM 접속이 안 될 때 살펴봐야 할 부분에 대해서 정리
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 EC2 인스턴스에서 SSM 접속이 안 될 때 살펴봐야 할 부분에 대해서 정리해 봤습니다.
SSM 접속 문제
EC2 인스턴스에서 SSM을 이용하여 접속을 시도하고자 할 때 설정 미스로 에러가 발생하곤 합니다.
SSM 접속이 되지 않을 때는 어떠한 부분을 확인해야 하는지 살펴보도록 합시다.
네트워크 문제
SSM 접속을 시도하기 위해서는 먼저 EC2 인스턴스가 외부와 통신할 수 있는 환경인지 확인할 필요가 있습니다.
상기 이미지처럼 인터넷과 통신이 가능한 퍼블릭 서브넷에 EC2 인스턴스를 배치한 경우 SSM을 통해 EC2 인스턴스에 접속할 수 있을 것입니다.
그렇다면 프라이빗 서브넷에 EC2 인스턴스를 배치하면 어떻게 될까요? 프라이빗 서브넷에 배치한 EC2 인스턴스는 외부로 나갈 수 있는 경로가 없기 떄문에 SSM 접속이 불가능하게 됩니다.
이런 상황에서는 NAT Gateway를 배치하여 프라이빗 서브넷의 EC2 인스턴스가 외부와 통신할 수 있도록 네트워크 경로를 설정할 필요가 있습니다.
결과적으로 SSM 접속을 시도하기 위해서는 EC2 인스턴스가 Internet Gateway 혹은 NAT Gateway를 통해 외부와 통신할 수 있는 환경일 필요가 있습니다.
※ SSM 접속을 위한 보안 그룹 설정은 필요없습니다.
IAM 역할 문제
다음 살펴볼 문제는 IAM 역할 문제입니다.
SSM 접속을 시도하기 위해서는 해당 EC2 인스턴스에 IAM 역할을 연결할 필요가 있습니다.
SSM 접속을 위해서는 IAM 역할에 AmazonSSMManagedInstanceCore 정책을 할당할 필요가 있습니다.
AmazonSSMManagedInstanceCore 정책에 대한 자세한 내용은 아래 공식 문서를 참고해 주세요.
여기까지 SSM 접속을 위해 IAM 역할까지 할당했다면 SSM으로 EC2 인스턴스에 접속할 수 있을 것입니다.
SSM Agent 문제
기본적으로 AWS에서 제공하는 EC2 인스턴스들은 SSM Agent가 설치되어있기 때문에 사용자가 직접 설치할 필요 없이 상기 네트워크 문제와 IAM 역할 문제만 신경 쓰면 됩니다.
하지만 예외적으로 RHEL에서는 SSM Agent가 설치되어 있지 않아 사용자가 직접 설치할 필요가 있습니다.
RHEL에서 SSM Agent를 설치하는 방법은 아래 블로그를 참고해 주세요.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.